package com.delivery.deliverysystem.util;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

public class LocalIpUtils {

    /**
     * 获取无线局域网适配器 WLAN 的 IPv4 地址
     * @return 无线局域网适配器 WLAN 的 IPv4 地址
     */
    public static String getLocalIPv4Address() {
        try {
            // 获取所有网络接口
            Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
            while (networkInterfaces.hasMoreElements()) {
                NetworkInterface networkInterface = networkInterfaces.nextElement();
//                System.out.println("打印这个网络接口看看："+networkInterface);
                //  检查网络接口名称是否包含 "wlan"（不区分大小写）
                if (networkInterface.getName().toLowerCase().contains("wlan")) {
                    // 获取网络接口的所有 IP 地址
                    Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
                    while (inetAddresses.hasMoreElements()) {
                        InetAddress inetAddress = inetAddresses.nextElement();
                        // 过滤掉 IPv6 地址和回环地址
                        if (!inetAddress.isLoopbackAddress() && inetAddress instanceof java.net.Inet4Address) {
                            return inetAddress.getHostAddress();
                        }
                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
        return "127.0.0.1"; // 如果没有找到有效的 IPv4 地址，返回本地回环地址
    }
}